Refactorings in Large Software Projects
نویسنده
چکیده
Customer MyCustomerFig. 6-4AbstractImplementations forInterfaces 2276.9 An Example If the API as well as the implementation of a subsystem are respectivelyorganized in packages of their own, changes to the implementationcan be easier kept separate from the API. Design Tip 6: Unambiguous Class Names Class names in a subsystem API should be unambiguous, even withoutpackage names. Otherwise, problems can arise during migration whenclasses are moved into other packages. Design Tip 7: Explicit Default Constructor Each class should have at least one explicit constructor to prevent thecompiler from generating the default constructor. Otherwise, the com-piler-generated default constructor can be deleted ‘accidentally’ whena parameterized constructor is added.
منابع مشابه
Large Refactorings in Agile Software Development
Refactoring is a key part of many agile software development methods. Where most developers associate small design changes with the term refactoring (as described by Martin Fowler or Bill Opdyke), the daily programming in mediumto large-sized projects needs more than fine-grained refactoring. More complex refactorings appear in such projects, running for more than hours or days, consisting of a...
متن کاملTowards a Proper Integration of Large Refactorings in Agile Software Development
Refactoring is a key element of many agile software development methods. While most developers associate small design changes with the term refactoring (as described by Martin Fowler and William F. Opdyke), everyday development practice in mediumto large-sized projects calls for more than fine-grained refactorings. Such projects involve more complex refactorings, running for several hours or da...
متن کاملConflict-aware schedule of software refactorings
Software refactoring is to restructure the internal structure of object-oriented software to improve software quality, especially maintainability, extensibility and reusability while preserving its external behaviours. According to predefined refactoring rules, we may find many places in the software where refactorings can be applied. Applying each refactoring, we may achieve some effect (quali...
متن کاملPersonalized Multi-Objective Approach for Refactoring Recommendations
Refactoring is an extremely important solution to reduce and manage the growing complexity of software systems. However, maintaining a high-level code quality can be expensive since time and monetary pressures force developers to neglect to improve the quality of their source code. Thus, programmers are “opportunistic” when they apply refactorings since most of them are interested in improving ...
متن کاملSearch-Based Refactoring Detection Using Software Metrics Variation
Software is frequently refactored to improve its design, either as part of an agile development process or as part of a major design overhaul. In either case, it is very useful to determine what refactorings have recently taken place in order to comprehend better the software and its development trajectory. To this end, we have developed an approach to automate the detection of source code refa...
متن کاملDiscipline Matters: Refactoring of Preprocessor Directives in the #ifdef Hell
The C preprocessor is used in many C projects to support variability and portability. However, researchers and practitioners criticize the C preprocessor because of its negative effect on code understanding and maintainability and its error proneness. More importantly, the use of the preprocessor hinders the development of tool support that is standard in other languages, such as automated refa...
متن کامل